package com.cskaoyan.javase.method._1detail;
/**
 * 思考:
 *      方法在定义时,可以给出形式参数
 *      那么方法在调用时,就必须传入对应的实际参数
 *      那么:
 *      实参的数据类型和形参的数据类型,是不是完全保持一致呢?
 *
 *      不需要保持完全一致,只需要保持"兼容"
 *
 * 什么是兼容呢?
 * 当实参的数据类型能够自动类型转换到对应形参的数据类型
 * 那么该实参就允许传入方法
 * 反之,如果是强转的关系,是不行的.
 *
 *
 * @since 15:58
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo2 {
    public static void main(String[] args) {
        test(100);
        int num = 100;
        test(num);
        byte a = 100;
        test(a);
        char b = 'a';
        test(b);
        short c = 100;
        test(c);

        long d = 100L;
        // 强转不能传入方法
        // _3test(d);


        // test2方法允许传入基本数据类型中所有的数值类型(不包括boolean),因为double的取值范围最大
        test2(a);
        test2(b);
        test2(c);
        test2(d);
        test2(100);
        test2(0.1);
        test2(0.1F);
    }

    public static void test(int num){}

    public static void test2(double num){}
}
